--- 战斗主类
---
--- @class FightTest
FightTest = ClientFight.CreateClass("FightTest")
local this = FightTest
--- @public
--- @return FightTest
function FightTest:ctor(team, site)

    --private static final Logger log = LoggerFactory.getLogger(FightTest:class);
    self.Logger = nil;
    ---@type SimulatorManager
    self.simulatorManager = logicMgr.SimulatorManager;
    ---@type FightManager
    self.FightManager = FightManager;
    ---@type TeamFightManager
    self.teamFightManager = TeamFightManager;
    self.Random_Seed = 54;
    self.attackers = { 0, 32, 0, 34, 0, 0 };
    self.defenders = { 34, 31, 0, 19, 0, 0 };
    self.attackerSupportSkillId = 0;
    self.defSupportSkillId = 0;

end

function FightTest:test()
    print(os.time() / 1000 + 20);
    this:doTest();
end

function FightTest:doTest()
    local battleInfo = self.simulatorManager.createBattleInfo(os.time(), self.attackers, self.defenders, self.Random_Seed,
            self.attackerSupportSkillId, self.defSupportSkillId);
    local startTime = os.time();
    local fight = self.FightManager.init(battleInfo);
    log.info("战斗初始化时长：{}ms,fightId={}", os.time() - startTime, fight.getFightId());

    startTime = os.time();
    self.FightManager.start(fight);
    --log.info("战斗计算时长：{}ms, 战斗播放时长：{}s", os.time() - startTime, fight.frame * Global.FIGHT_FRAME / 1000);
    --
    --org.apache.logging.log4j.Logger logger = Log4j2Util.getLogger("fights/", String.valueOf(fight.getFightId()));
    --logger.info(JSON.toJSONString(fight.getActions(), SerializerFeature.DisableCircularReferenceDetect));
    --Log4j2Util.stop(String.valueOf(fight.getFightId()));
end
local json = "{\"atkTeam\":{\"formation\":[1582695448765,1582695448773,1582695448745,1582695448789,1582695448777,1582695448633],\"frozen\":true,\"initSkills\":[],\"members\":[{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":482525,\"2\":188053,\"3\":8644751,\"4\":1000,\"7\":1000,\"10\":2500,\"11\":3000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"1\":231973,\"2\":99417,\"3\":3976684,\"7\":809,\"28\":925,\"14\":193},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582695448765\",\"partnerModelId\":46,\"site\":1,\"skinUse\":904600,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":320006,\"2\":263305,\"3\":7896738,\"4\":1000,\"7\":1000,\"10\":4000,\"11\":5000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"16\":425,\"1\":198834,\"2\":132556,\"3\":3976684,\"10\":193,\"11\":193},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582695448773\",\"partnerModelId\":48,\"site\":2,\"skinUse\":904800,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":357406,\"2\":250838,\"3\":7522731,\"4\":1000,\"7\":1000,\"10\":4000,\"11\":5000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"16\":386,\"1\":198834,\"2\":132556,\"3\":3976684,\"14\":193,\"15\":578},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582695448745\",\"partnerModelId\":41,\"site\":3,\"skinUse\":904100,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":564160,\"2\":125269,\"3\":6582165,\"35\":500,\"4\":1000,\"7\":1000,\"10\":1500,\"11\":2000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"1\":298251,\"2\":66278,\"3\":3479599,\"35\":289,\"6\":578,\"14\":212},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582695448789\",\"partnerModelId\":52,\"site\":4,\"skinUse\":905200,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":551243,\"2\":119035,\"3\":7052598,\"4\":1000,\"7\":1000,\"10\":1500,\"11\":3500,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"1\":265112,\"2\":66278,\"3\":3728141,\"5\":925,\"9\":540,\"14\":232},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582695448777\",\"partnerModelId\":49,\"site\":5,\"skinUse\":904900,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":357316,\"2\":269478,\"3\":8268944,\"4\":1000,\"7\":1000,\"10\":4000,\"11\":5000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"16\":355,\"1\":198834,\"2\":132556,\"3\":3976684,\"6\":578,\"14\":193},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582695448633\",\"partnerModelId\":13,\"site\":6,\"skinUse\":901300,\"star\":150,\"weaponLevel\":60,\"weather\":false}],\"power\":72109813,\"professionAdditionMap\":{\"1\":7,\"2\":10,\"3\":12,\"4\":7,\"5\":10,\"6\":6},\"professionAmountMap\":{\"1\":3,\"3\":1,\"5\":1,\"6\":1},\"supportSkillId\":0,\"teamId\":1580816400391},\"calDefTeamHeroCombination\":true,\"damageSuppress\":0,\"defTeam\":{\"formation\":[1582427013381,1582427013425,1582427013405,1582427013409,1582427013301,1582427013297],\"frozen\":true,\"initSkills\":[],\"members\":[{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":357406,\"2\":250838,\"3\":7522731,\"4\":1000,\"7\":1000,\"10\":4000,\"11\":5000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"16\":386,\"1\":198834,\"2\":132556,\"3\":3976684,\"14\":193,\"15\":578},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582427013381\",\"partnerModelId\":41,\"site\":1,\"skinUse\":904100,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":564160,\"2\":125269,\"3\":6582165,\"35\":500,\"4\":1000,\"7\":1000,\"10\":1500,\"11\":2000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"1\":298251,\"2\":66278,\"3\":3479599,\"35\":289,\"6\":578,\"14\":212},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582427013425\",\"partnerModelId\":52,\"site\":2,\"skinUse\":905200,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":651428,\"2\":125269,\"3\":7891188,\"35\":500,\"4\":1000,\"7\":1000,\"10\":1500,\"11\":2000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"1\":298251,\"2\":66278,\"3\":3479599,\"35\":289,\"9\":232,\"14\":232},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582427013405\",\"partnerModelId\":47,\"site\":3,\"skinUse\":904700,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":320006,\"2\":263305,\"3\":7896738,\"4\":1000,\"7\":1000,\"10\":4000,\"11\":5000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"16\":425,\"1\":198834,\"2\":132556,\"3\":3976684,\"10\":193,\"11\":193},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582427013409\",\"partnerModelId\":48,\"site\":4,\"skinUse\":904800,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{\"2001230\":2001230},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":620261,\"2\":175511,\"3\":9304512,\"4\":1000,\"7\":1000,\"10\":3000,\"11\":500,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"16\":386,\"1\":298251,\"2\":82848,\"3\":4473770,\"14\":193,\"15\":578},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582427013301\",\"partnerModelId\":21,\"site\":5,\"skinUse\":902100,\"star\":150,\"weaponLevel\":60,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attributeMap\":{\"0\":{},\"1\":{\"1\":445019,\"2\":188008,\"3\":8493348,\"4\":1000,\"7\":1000,\"10\":2500,\"11\":3000,\"28\":10000,\"29\":1,\"30\":9900,\"31\":10100},\"2\":{},\"3\":{},\"4\":{\"1\":231973,\"2\":99417,\"3\":3976684,\"35\":289,\"4\":309,\"9\":386},\"5\":{},\"6\":{},\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{}},\"buffDynamicParam\":{},\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":300,\"monster\":false,\"partnerId\":\"1582427013297\",\"partnerModelId\":20,\"site\":6,\"skinUse\":902000,\"star\":150,\"weaponLevel\":60,\"weather\":false}],\"power\":72144918,\"professionAdditionMap\":{\"1\":7,\"2\":10,\"3\":12,\"4\":7,\"5\":10,\"6\":6},\"professionAmountMap\":{\"1\":2,\"3\":2,\"4\":1,\"5\":1},\"supportSkillId\":0,\"teamId\":1582427013123},\"dungeonId\":0,\"extraInfo\":{\"backFightId\":\"0\"},\"fightId\":590416394226404,\"fightType\":3,\"hitrateSuppress\":0,\"maxBattleSeconds\":90,\"playerId\":1580816400391,\"randSeed\":1910717852,\"reportSaveTypeEnum\":0,\"serverId\":23,\"version\":\"1.0.0\",\"winType\":0}";

function FightTest:Fitest2()
    self:doTest2();
    self:doTest2();
    self:doTest2();
    self:doTest2();
    self:doTest2();
    self:doTest2();
    self:doTest2();
end
function FightTest:doTest2()
    local battleInfo = JSONObject.parseObject(json, BattleInfo.class);
    local startTime = os.time();
    local fight = self.FightManager.init(battleInfo);
    print(string.format("战斗初始化时长：%sms,fightId={}", os.time() - startTime, fight.fightId));

    startTime = os.time();
    self.FightManager.start(fight);
    local fightInfo = buildFightInfo(battleInfo.getServerId(), battleInfo.getVersion(), battleInfo.getPlayerId(), battleInfo.getAtkTeam(), battleInfo.getDefTeam(), fight);
    print(string.format("战斗计算时长：%s ms, 战斗播放时长：{}s", os.time() - startTime, fight.frame * Global.FIGHT_FRAME / 1000));
    local battleResult = FightTest:buildBattleResult(fight, fightInfo, 0, 0);
    -- 本次战斗输出伤害
    local atkDamage = 0;
    for i, memberStat in pairs(battleResult.atkMemberStats) do
        atkDamage = atkDamage + memberStat.getAttack();
    end
    local beatkDamage = 0;
    for i, memberStat in pairs(battleResult.getDefMemberStats) do

        beatkDamage = beatkDamage + memberStat.getBeInjured();
    end


    --        System.out.println(atkDamage+"  beatkDamage: " + beatkDamage);
    --org.apache.logging.log4j.Logger logger = Log4j2Util.getLogger("fights/", String.valueOf(fight.getFightId()));
    --logger.info(JSON.toJSONString(fight.getActions(), SerializerFeature.DisableCircularReferenceDetect));
    --Log4j2Util.stop(String.valueOf(fight.getFightId()));
end

--[[
* 战斗信息
*
* @param serverId
* @param version
* @param playerId
* @param team0
* @param team1
* @param fight
* @return
*/]]
function FightTest:buildFightInfo(serverId, version, playerId, team0, team1, fight)

    local info = FightInfo.New();
    info.version = version;
    info.serverId = serverId;
    info.fightId = fight.fightId;
    info.playerId = playerId;
    info.time = fight.frame * Global.FIGHT_FRAME / 1000;
    info.battleTime = os.time();

    local at = 0;
    for i, fighter in pairs(fight.teams[1].getFighters) do

        info.myStatistics[String.valueOf(fighter.partnerId)] = fighter.getFighterStats();
        at = at + fighter.fighterStats.attack;
    end

    -- 保存阵容
    local tmList = {};
    for i, member in pairs(team0.members) do

        local tm = FightMember.New();
        tm.partnerId = member.partnerId;
        tm.partnerModelId = member.partnerModelId;
        tm.level = member.level;
        tm.star = member.star;
        tm.weaponLevel = member.weaponLevel;
        table.insert(tmList, tm);
    end

    info.myMembers = tmList;

    tmList = {};

    local be = 0;
    for i, fighter in pairs(fight.teams[1].fighters) do

        info.foeStatistics[String.valueOf(fighter.partnerId)] = fighter.fighterStats;
        be = be + fighter.fighterStats.beInjured;
    end

    for i, member in pairs(team1.members) do

        local tm = FightMember.New();
        tm.partnerId = member.partnerId;
        tm.partnerModelId = member.partnerModelId;
        tm.level = member.level;
        tm.star = member.star;
        tm.weaponLevel = member.weaponLevel;
        table.insert(tmList, tm);
    end

    info.foeMembers = tmList;

    info.cmds = fight.actions;

    --        System.out.println(at+" : beattack= "+be);
    return info;
end
function FightTest:buildBattleResult(fight, fightInfo, fightResult, ServerId)
    local battleResult = BattleResult.New();
    battleResult.FightId = fight.fightId;
    battleResult.Time = fightInfo.time;
    battleResult.Win = fightResult;
    battleResult.Oss = 0;
    battleResult.DevOss = 0;
    battleResult.ExtraInfo = fightInfo.extraInfo;
    battleResult.FightReportPath = fight.reportSavePath(ServerId);

    for i, fightTeam in pairs(fight.teams) do

        for j, fighter in pairs(fightTeam.fighters) do

            battleResult.currHps[fighter.partnerId] = fighter.hp;
            battleResult.currEnergys[fighter.partnerId] = fighter.energy;
            battleResult.maxHp[fighter.partnerId] = FighterAttributeManager.getFightAttr(fighter, FighterAttributeEnum.HP);
        end
        for k, fighter in pairs(fightTeam.alternates) do

            battleResult.currHps[fighter.partnerId] = fighter.hp;
            battleResult.currEnergys[fighter.partnerId] = fighter.energy;
            battleResult.maxHp[fighter.partnerId] = FighterAttributeManager.getFightAttr(fighter, FighterAttributeEnum.HP);
        end
    end

    -- 战斗数据
    for i, fightMember in pairs(fightInfo.myMembers) do

        local memberStat = fightInfo.myStatistics[String.valueOf(fightMember.partnerId)];
        if (memberStat == nil) then
            memberStat = new
            FighterStats();
        end
        table.insert(battleResult.atkMemberStats, memberStat);
    end

    for i, fightMember in pairs(fightInfo.foeMembers) do

        local memberStat = fightInfo.foeStatistics[String.valueOf(fightMember.partnerId)];
        if (memberStat == nil) then
            memberStat = FighterStats.New();
        end
        table.insert(battleResult.defMemberStats, memberStat);
    end

    return battleResult;
end

function FightTest:test3()
    local battleInfo = JSON.parseObject("{\"atkTeam\":{\"members\":[{\"addSkills\":{},\"assistant\":false,\"attribute\":{},\"groupId\":3,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68655186445769\",\"partnerModelId\":25,\"playerId\":68655186445589,\"playerName\":\"qs\",\"site\":4,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{},\"groupId\":3,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68655186445849\",\"partnerModelId\":44,\"playerId\":68655186445589,\"playerName\":\"qs\",\"site\":5,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{},\"groupId\":3,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68655186445861\",\"partnerModelId\":47,\"playerId\":68655186445589,\"playerName\":\"qs\",\"site\":2,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{},\"groupId\":3,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68655186445877\",\"partnerModelId\":51,\"playerId\":68655186445589,\"playerName\":\"qs\",\"site\":1,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:259300616,2:60687210,3:3911562447,4:500,10:750,11:1750,28:10000,29:1,30:9900,31:10100}},\"groupId\":3,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68655186445735\",\"partnerModelId\":17,\"playerId\":68655186445589,\"playerName\":\"qs\",\"site\":6,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{},\"groupId\":3,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68655186445751\",\"partnerModelId\":21,\"playerId\":68655186445589,\"playerName\":\"qs\",\"site\":3,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:332,2:64,3:3754,35:500,4:500,10:750,11:1000,28:10000,29:1,30:9900,31:10100}},\"groupId\":1,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1,\"monster\":false,\"partnerId\":\"68655454879907\",\"partnerModelId\":10,\"playerId\":68655387772425,\"playerName\":\"医生\",\"site\":4,\"skills\":[],\"star\":60,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:92,2:22,34:1000,3:1521,4:500,10:1250,11:750,28:10000,29:1,30:9900,31:10100}},\"groupId\":1,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1,\"monster\":false,\"partnerId\":\"68655454879993\",\"partnerModelId\":23,\"playerId\":68655387772425,\"playerName\":\"医生\",\"site\":3,\"skills\":[],\"star\":20,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:801,2:177,3:11070,4:500,10:750,11:1750,28:10000,29:1,30:9900,31:10100}},\"groupId\":1,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":19,\"monster\":false,\"partnerId\":\"68655454880105\",\"partnerModelId\":27,\"playerId\":68655387772425,\"playerName\":\"医生\",\"site\":6,\"skills\":[],\"star\":60,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:107,2:20,34:1000,3:1304,4:500,10:1250,11:750,28:10000,29:1,30:9900,31:10100}},\"groupId\":1,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1,\"monster\":false,\"partnerId\":\"68655454880115\",\"partnerModelId\":2,\"playerId\":68655387772425,\"playerName\":\"医生\",\"site\":2,\"skills\":[],\"star\":20,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:326,2:92,3:4955,4:500,10:1500,11:250,28:10000,29:1,30:9900,31:10100}},\"groupId\":1,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1,\"monster\":false,\"partnerId\":\"68655454880131\",\"partnerModelId\":21,\"playerId\":68655387772425,\"playerName\":\"医生\",\"site\":5,\"skills\":[],\"star\":60,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:187,2:46,34:1000,3:2587,4:500,10:1250,11:750,28:10000,29:1,30:9900,31:10100}},\"groupId\":1,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1,\"monster\":false,\"partnerId\":\"68655454879901\",\"partnerModelId\":31,\"playerId\":68655387772425,\"playerName\":\"医生\",\"site\":1,\"skills\":[],\"star\":40,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:259300616,2:60687210,3:3911562447,4:500,10:750,11:1750,28:10000,29:1,30:9900,31:10100},5:{1:2511,2:829,3:45213}},\"groupId\":2,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68651898116659\",\"partnerModelId\":17,\"playerId\":68651898116127,\"playerName\":\"qsz\",\"site\":6,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:273093945,2:77238994,3:4915655130,4:500,10:1500,11:250,28:10000,29:1,30:9900,31:10100},5:{1:2511,2:829,3:45213}},\"groupId\":2,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68651898116743\",\"partnerModelId\":21,\"playerId\":68651898116127,\"playerName\":\"qsz\",\"site\":5,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:237233931,2:71721061,3:4518420123,35:500,4:500,10:750,11:1000,28:10000,29:1,30:9900,31:10100},5:{1:2511,2:829,3:45213}},\"groupId\":2,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68651898116747\",\"partnerModelId\":22,\"playerId\":68651898116127,\"playerName\":\"qsz\",\"site\":3,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:286886258,2:55170285,3:4170853834,35:500,4:500,10:750,11:1000,28:10000,29:1,30:9900,31:10100},5:{1:2511,2:829,3:45213}},\"groupId\":2,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68651898116851\",\"partnerModelId\":47,\"playerId\":68651898116127,\"playerName\":\"qsz\",\"site\":2,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:253783691,2:55170285,34:1000,3:3475721257,4:500,10:1250,11:750,28:10000,29:1,30:9900,31:10100},5:{1:2511,2:829,3:45213}},\"groupId\":2,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68651898116867\",\"partnerModelId\":51,\"playerId\":68651898116127,\"playerName\":\"qsz\",\"site\":1,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false},{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:281369333,2:46894897,3:3666055177,35:500,4:500,10:750,11:1000,28:10000,29:1,30:9900,31:10100},5:{1:2511,2:829,3:45213}},\"groupId\":2,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":1000,\"monster\":false,\"partnerId\":\"68651898116631\",\"partnerModelId\":10,\"playerId\":68651898116127,\"playerName\":\"qsz\",\"site\":4,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false}],\"noGroup\":false},\"damageSuppress\":0,\"defTeam\":{\"members\":[{\"addSkills\":{},\"assistant\":false,\"attribute\":{1:{1:800,2:1,3:4983040000,4:0,5:0,6:10000,7:0,8:0,9:0,10:0,11:0,12:0,13:0,14:0,15:0,16:0,17:0,18:0,19:0,20:0,21:0,22:0,23:0,24:0,25:0,26:0,27:0,28:0,29:1,30:0,31:0,32:0,33:0,34:0,35:0}},\"groupId\":1,\"initEnergy\":0,\"initHp\":0,\"leader\":false,\"level\":999,\"monster\":false,\"partnerId\":\"44\",\"partnerModelId\":9102,\"playerId\":0,\"playerName\":\"\",\"site\":1,\"skills\":[],\"star\":150,\"weaponLevel\":0,\"weather\":false}],\"noGroup\":false},\"extraInfo\":{},\"fightId\":129046963034263552,\"fightType\":13,\"hitrateSuppress\":0,\"playerId\":68655387772425,\"randSeed\":1425879813,\"reportSaveTypeEnum\":0,\"serverId\":999,\"winType\":0}", TeamBattleInfo.class);
    local fight = self.teamFightManager.init(battleInfo);
    self.teamFightManager.start(fight);

end
